package lumis.portlet.container.manager;

import lumis.portal.PortalException;
import lumis.portal.authentication.SessionConfig;
import lumis.portlet.container.deployment.PortletDeployConfig;
import lumis.util.ITransaction;

/**
 * JSR-168 portlet related operations manager.
 * 
 * @since 4.0.7
 * @version $Revision: 4963 $ $Date: 2006-11-03 14:45:45 -0300 (Fri, 03 Nov 2006) $
 */
public interface IPortletManager
{
	/**
	 * Exports a processed portlet WAR for manual deployment.
	 * @param sessionConfig the user session information.
	 * @param deployConfig the portlet deployment specification.
	 * @param transaction the transaction for persistence access.
	 * @throws PortalException
	 * @since 4.0.7
	 */
	public void export(SessionConfig sessionConfig,  
			PortletDeployConfig deployConfig, ITransaction transaction) 
			throws PortalException;

	/**
	 * Deploys a portlet war.
	 * @param sessionConfig the user session information.
	 * @param deployConfig the portlet deployment specification.
	 * @param transaction the transaction for persistence access.
	 * @throws PortalException
	 * @since 4.0.7
	 */
	public void deploy(SessionConfig sessionConfig, PortletDeployConfig deployConfig, 
			ITransaction transaction) throws PortalException;

}